[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 WARNING: This document is subject to change at any time.  Any changes made
 will be indicated by a vertical bar (|) in column 1 of the file.
|Last update: 03/24/93
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

 The later versions of PCBoard must accomodate a much larger number of nodes
 which precludes the ability to load the entire USERNET.XXX file into memory
 for processing.  For that reason the file format has been changed to allow
 picking up of status changes without having to scan the entire file.  In
 addition, new capabilities have been added.

 The following constitutes the file format and file handling for usernet.xxx
 in the PCBoard v15.0 version.

  USERNET.XXX header
  ==================
  typedef struct {
|   unsigned Version;        PCBoard Version Number (150)
    unsigned NumOfNodes;     The number of nodes supported in the file
    unsigned SizeOfRec;      The record size for each node
  } usernethdrtype;

  typedef struct {
    char     Status;         Node status
    bool     MailWaiting;    Flag to show mail posted while caller is online
    unsigned Pager;          Node number of pager (if node has been paged)
    char     Name[26];       Caller's Name (if a caller is online)
    char     City[25];       Caller's City (if a caller is online)
    char     Operation[49];  Current operation (door name, etc)
|   char     Message[80];    For broadcast messages
|   char     Channel;        Channel number of pager (if node has been paged)
|   long     LastUpdate;     hour:min:sec of last update on this record
  } noderectype;

  NOTE:  Prior to v15.0 the Message, Channel and LastUpdate fields did not
  exist.  However, the function of the Message field was performed thru the
  Operation field.

 The actual layout of the file is the following:

   1) header information
   2) attention bit flags
   3) up status bit flags
   4) node records (1 record for each node)

 The bit flags are set up such that one byte holds 8 flags, i.e.  nodes 1-8
 fit in the first byte, nodes 9-16 fit in the second byte and so on.  The
 number of bytes used for the bit flags is equal to the number of nodes
 indicated in the header divided by 8 and rounded up to a full byte.

 The "attention bit flags" are used to get another node's attention.  For
 instance, if one node wants to chat with another it sets the attention bit
 flag for the target node ON.  The same is used for dropping an alternate
 node to DOS or forcing it to logoff.

 The "up status bit flags" are used to indicate if a node is up or not.  This
 is used so that a complete scan of the usernet.dat file is never needed in
 order to find out which nodes are up.  (if a 1000-node version were in use
 this means scanning only 125 bytes instead of the 100K or so that would be
 the complete size of the usernet.xxx file)

 Status Letters
 --------------
   0  = Ascii 0 is used to signify that a node is not up
  ' ' = Space denotes that the node is up but no caller is online
  'A' = Available for Chat
| 'B' = Remote Drop to DOS
  'C' = Chatting with sysop
| 'D' = Out to DOS - in a door
  'E' = Entering a Message
| 'F' = Viewing a File (PCB15 shows transfer, Moni shows File View)
  'G' = Group Chat
  'L' = Logoff Pending
  'M' = Received broadcast message
| 'N' = Running Event
  'O' = Logging Into System
  'P' = Paging the Sysop
| 'R' = Recycle BBS
  'S' = Answering a script questionnaire
  'T' = Transfering a File
  'U' = Unavailable for Chat
| 'W' = Drop to DOS (wait for caller to logoff)
| 'X' = Drop to DOS (now)

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson